package cn.edu.cug.cs.gtl.docsrv.shp.querier;

import org.locationtech.jts.geom.Envelope;
import org.locationtech.jts.geom.Geometry;
import org.opengis.feature.Feature;
import org.opengis.feature.simple.SimpleFeature;

import java.util.List;

/**
 * 针对内存中的ShapeBlock所包含要素的集合查询器
 */
public interface GeometryQuerier {
    List<Feature> disjoint(Geometry g);
    List<Feature> touches(Geometry g) ;
    List<Feature> intersects(Geometry g) ;
    List<Feature> crosses(Geometry g) ;
    List<Feature> within(Geometry g);
    List<Feature> contains(Geometry g);
    List<Feature> overlaps(Geometry g) ;
    List<Feature> covers(Geometry g) ;
    List<Feature> coveredBy(Geometry g);
    List<Feature> equals(Geometry g);
    List<SimpleFeature> getFeatures();
    List<Geometry> getGeometries();
    List<String> getGeometryJSONs();
    List<String> getFeatureJSONs();
    Envelope     getEnvelope();
}
